AWS Organizations 環境で使える Amazon DevOps Guru のインサイト集約機能を使ってみた
いわさです。
これまで Amazon DevOps Guru を何度か使ってきたのですが、これまでは Organizations 配下のメンバーアカウントでのみ個別に有効化していました。
先日 Organizations の管理アカウントで DevOps Guru を使ったところ、通常と違うことに気が付きました。
ダッシュボードやインサイトにアカウントの概念があるのです。また、設定メニューも少し異なっていました。
調べてみると Amazon DevOps Guru には Organizations 管理用の機能があって、マルチアカウントでインサイト集約が出来るらしいということを知りました。(アップデート自体は随分前のものです)
Organizations 環境でこのあたりの機能を使った記事が見当たらなかったので、本日はこちらの機能を使ってみました。
集約しない場合
まず通常のメンバーアカウントでの使用時というか、マルチアカウントの概念が無い状態では次のような表示となります。
ダッシュボード
ダッシュボードでは対象アカウントで検出されたリソースやアプリケーションのインサイトのみが表示されています。
インサイト
インサイト一覧画面は次のようになっており、「アカウント」の概念が存在しません。
また、インサイト一覧に対して、ステータス、重要度、影響を受けるアプリケーション、影響を受けるサービスのプロパティーでフィルタリングが可能です。
集約する場合
集約する場合は、まず管理アカウントから管理出来るようにする必要があります。
AWS Organizations のサービスから Amazon DevOps Guru の信頼されたアクセスを有効化します。
この操作で Amazon DevOps Guru の管理アカウント設定画面でも信頼されたアクセスが有効になります。
委任管理者アカウントを設定(任意)
デフォルトで Organizations 管理アカウントで全アカウントのインサイト集約が可能です。
ただし、組織内のそれ以外の特定アカウントを 1 つまで委任管理者として追加することが出来ます。
次は管理アカウントをそのまま使う場合で、デフォルトはこちらの設定になっています。
次は委任された管理者を選択する場合です。
組織内のアカウントから委任管理者アカウントを 1 つだけ選択出来ます。
ただし、委任した場合でも組織の管理アカウントでは引き続き管理者としてメンバーアカウントのインサイトを集約した管理画面が利用出来ました。
メンバーアカウントで有効化
管理アカウントあるいは委任管理アカウントを構成すれば管理化には置かれるのですが、これだけでメンバーアカウントのインサイトが取得出来るのかというと実はそうではありません。
マルチアカウントインサイト集約機能は個別のアカウントで発生したインサイトを集約するので、インサイトを発生させるためには DevOps Guru の有効化作業が、各メンバーアカウントで必要です。
ここで個別にアカウントにアクセスして有効化しても良いですが、SSM のクイックセットアップで有効化することも出来ます。
次のように設定オプションを選択します。
ターゲットで OU を指定することが出来るので、指定した OU 配下のアカウントのみを一括有効化することも出来ます。
リージョンと OU を指定する形となっています。
有効化したアカウント・リージョンごとに料金が発生するのでご注意ください。
マルチアカウント集約時の管理ダッシュボード
そしてマルチアカウント構成でのダッシュボードは次のようになります。
一見すると先程と同様に見えますが、よく見るとアプリケーションのサマリではなくて全アカウントのサマリとなっています。
また、システムヘルスサマリーの上部にはフィルターコントロールが追加されており、アカウントあるいは OU を最大 5 つまで指定しての絞り込みが出来ます。
次はアカウントを指定した場合です。
5 つまで選択すると、チェックボックスが非活性になってそれ以上は選択できなくなります。
続いて、次は OU を指定した場合です。こちらもアカウント指定時と同様で最大 5 つまでとなっています。
ただし、本日時点では OU 選択時のダッシュボードの表示が期待する結果と違っていました。
詳細は後述します。
上段のフィルターバー以外では、システムヘルスの概要欄でこれまでの表示方法(アプリケーション、リソースタイプ)に加えてアカウント表示モードが追加されています。
アカウントの場合は次のように対象のアカウントを検索、あるいは異常なアカウントのみ・正常なアカウントのみを表示させることが出来ます。
また、アプリケーションやリソースタイプの場合はアカウントを横断した検索が可能です。
OU 選択時のダッシュボードの表示が正しくない
先程触れましたが、本日時点では OU で絞り込んだ時のダッシュボードの挙動が少し変でした。
SaaSBoost という名前の AWS アカウントでインサイトが発生していたとします。
このアカウントは次のように SaaS OU 配下に存在しています。
この時、SaaS OU のみで絞り込みをしてもインサイトが表示されませんでした。
しかし追加で別の OU (ここでは Security OU)をフィルター対象に追加してみるとインサイトが表示されました。
このインサイトの内容は SaaSBoost アカウント ID のものです。
しかし画面中央には「AWS アカウントとリージョンにインサイトはありません。」と表示されています。
アカウントフィルタリングについては正常に動作していましたので、マルチアカウントでダッシュボードを利用する際に表示が変だなと感じた際はアカウントでのフィルタリングを使ってみてください。
インサイトの違い
インサイト一覧画面でも、マルチアカウントの場合は挙動がシングルアカウントの場合と異なっています。
インサイト画面では全てのアカウントのインサイトが表示されます。
そのため、従来の情報に加えてアカウント ID 列が追加されています。
インサイトのフィルターコントロールではアカウント ID での絞り込みが可能になっています。
通知は集約されない
ここは重要な点だと思いますが、インサイトの通知は集約されていません。
管理アカウントや委任管理アカウントの通知設定で受けることが出来るわけではなく、インサイトが発生したアカウントで設定されている SNS トピックへの通知となっています。
また、SSM のクイックセットアップで SNS 通知を有効化した場合は、各アカウントに DevOps Guru 用の SNS トピックが自動作成されるようになっています。
次のトピックはクイックセットアップから自動作成された SNS トピックです。
個別に通知先トピックの ARN 指定は可能なので、通知を集約したい場合は手動でアカウントごとに対応する必要がありそうです。
マルチアカウントインサイト集約機能では、ダッシュボードとインサイト一覧の集約であると覚えておきましょう。
さいごに
本日は AWS Organizations 環境で使える Amazon DevOps Guru のインサイト集約機能を使ってみました。
一見不便なようにも感じられますが、監視リソースやアカウントが増えると DevOps Guru はかなり高額になるので、無条件で全アカウントが自動有効になるべきではなく今の状態は妥当かなと思いました。
あと、クイックセットアップが用意されてるのとても良いですね!通知の集約機能があるとさらに嬉しいかもしれない。